from tensorflow.python.ops import rnn_cell_impl
import tensorflow as tf

# pylint: disable=protected-access
_concat = rnn_cell_impl._concat
# pylint: enable=protected-access

def get_zero_shape(s, batch_size, dtype):
    c = _concat(batch_size, s)
    c_static = _concat(batch_size, s, static=True)
    size = tf.zeros(c, dtype=dtype)
    size.set_shape(c_static)
    return size

def get_normal_shape(s, batch_size, dtype):
    c = _concat(batch_size, s)
    c_static = _concat(batch_size, s, static=True)
    size = tf.random_normal(c, stddev=0.1)
    size.set_shape(c_static)
    return size